<!DOCTYPE html>
<html>
<head>
	<title></title>
	<link rel="stylesheet" type="text/css" href="../公用CSS文件/all.css" />
	<script type="text/javascript" src="../js/jquery.min.js"></script> 	<script type="text/javascript" src="../js/js.js"></script>
	<meta charset="utf-8">
	<style type="text/css">
		table{min-width:80%}
	</style>
</head>
<body>

<div class="dt">javascript字符串函数</div>
<ul>
	<div class="ltable showimg">字符串类型转换</div>
	<div class="img">
		<table>
			<tr>
				<th>方法</th><th>从属</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>toString</td>
				<td>将数据转化为字符串</td>
				<td>无(前置对象为数据源)</td>
				<td>字符串</td>
			</tr>
			<tr>
				<td>String</td>
				<td>将数据转化为字符串</td>
				<td>要转化为字符串的数据</td>
				<td>字符串</td>
			</tr>
		</table>
		<li>toString方法，如果前置对象为字符串或数字，会转化为字符串，如果是索引数组，则会和join(',')产生同样的效果，如果是null或undefinded会报错，其他统一转为['object']的描述字符</li>
	</div>

	<div class="ltable showimg">字符串结构操作和转换</div>
	<div class="img">
		<table>
			<tr>
				<th>方法</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>split</td>
				<td>分割字符串为数组，支持正则指定分割符</td>
				<td>str分隔符 【len数组最大长度=max】</td>
				<td>数组</td>
			</tr>
			<tr>
				<td>join</td>
				<td>分割数组为字符串，正则会连同定界符识别为字符串</td>
				<td>str分隔符</td>
				<td>字符串</td>
			</tr>
		</table>
		<li>join为Array对象下的方法，作用是将数组转化为字符串</li>
	</div>

	<div class="ltable showimg">子字符串截取和替换</div>
	<div class="img">
		<table>
			<tr>
				<th>方法</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>substring</td>
				<td>截取介于两个指定索引之间的字符（不支持负数索引）</td>
				<td>start索引值  【stop索引值=max】</td>
				<td>字符串</td>
			</tr>
			<tr>
				<td>substr</td>
				<td>截取指定索引起始指定长度的字符（支持负数索引）</td>
				<td>start索引值  【length长度=max】</td>
				<td>字符串</td>
			</tr>
			<tr>
				<td>slice</td>
				<td>截取指定索引起始指定索引结束的字符，不包含结束索引的字符（支持负数索引）</td>
				<td>start索引值  【end索引值=-1】</td>
				<td>字符串</td>
			</tr>
			<tr>
				<td>replace</td>
				<td>字符串替换，支持使用正则表示要替换的字符</td>
				<td>reg对象/字符串  replacement替换成的字符</td>
				<td>替换后的字符串（不改变原值）</td>
			</tr>
		</table>
		<li>子字符串截取不会改变原值，按索引区间截取的都包含起始不包含结束，结束索引位可以超出索引最大值</li>
		<li>replace字符串替换默认只会替换一次，多次替换需要使用正则并使用修饰符g，javascript也只有这一个字符串替换函数</li>
	</div>

	<div class="ltable showimg">其他字符串</div>
	<div class="img">
		<table>
			<tr>
				<th>方法</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>concat</td>
				<td>拼接字符串</td>
				<td>字符串...</td>
				<td>字符串</td>
			</tr>
			<tr>
				<td>indexOf</td>
				<td>字符串检索</td>
				<td>要检索的字符串</td>
				<td>正整数索引值，未找到字符返回-1</td>
			</tr>
			<tr>
				<td>lastIndexOf</td>
				<td>从末尾进行字符串检索</td>
				<td>要检索的字符串</td>
				<td>正整数索引值，未找到字符返回-1</td>
			</tr>
			<tr>
				<td>charAt</td>
				<td>返回指定位置的字符</td>
				<td>index索引</td>
				<td>字符，非法索引值返回空字符串</td>
			</tr>
			<tr>
				<td>charCodeAt</td>
				<td>返回指定位置的字符的Unicode编码</td>
				<td>index索引</td>
				<td>0 - 65535的数字，非法索引值返回NaN</td>
			</tr>
			<tr>
				<td>trim</td>
				<td>去除字符串头尾的空格</td>
				<td>无</td>
				<td>去除空格后的字符串</td>
			</tr>
			<tr>
				<td>toLocaleLowerCase</td>
				<td>字符串转化为小写</td>
				<td>无</td>
				<td>全小写的字符串</td>
			</tr>
			<tr>
				<td>toLocaleUpperCase</td>
				<td>字符串转化为大写</td>
				<td>无</td>
				<td>全大写的字符串</td>
			</tr>
		</table>
		<li>concat为数组和字符串对象下都有的方法，返回的也是对象对应的数据类型数据</li>
	</div>
</ul>

<div class="dt">javascript数字函数</div>
<ul>
	<div class="ltable showimg">数值提取函数</div>
	<div class="img">
		<table>
			<tr>
				<th>方法</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>Number</td>
				<td>将数据转化为Number类型数字</td>
				<td>任意数据</td>
				<td>返回Number数字或NaN</td>
			</tr>
			<tr>
				<td>parseInt</td>
				<td>解析字符串，并返回一个整数</td>
				<td>str字符串  【2-32进制基数】</td>
				<td>十进制整数</td>
			</tr>
			<tr>
				<td>parseFloat</td>
				<td>解析字符串，并返回一个整数</td>
				<td>str字符串</td>
				<td>十进制整数</td>
			</tr>
		</table>
		<li>parseInt和parseFloat转化数字时，会忽略左右的空格提取第一个字符，如果第一个字符不是数字会返回NaN
			，如果是则提取该字符和之后的连续的可以作为数字解析的字符一同解析为数字</li>
	</div>

	<div class="ltable showimg">数字运算函数</div>
	<div class="img">
		<table>
			<tr>
				<th>方法</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>abs</td>
				<td>取绝对值</td>
				<td>任意数值</td>
				<td>返回正数number或NaN</td>
			</tr>
			<tr>
				<td>ceil</td>
				<td>对数值向上取整</td>
				<td>任意数值</td>
				<td>返回整数number</td>
			</tr>
			<tr>
				<td>floor</td>
				<td>对数值向下取整</td>
				<td>任意数值</td>
				<td>返回整数number</td>
			</tr>
			<tr>
				<td>max</td>
				<td>取最大值</td>
				<td>任意数值...</td>
				<td>返回最大值，如果有不能被parseFloat的数据，返回NaN</td>
			</tr>
			<tr>
				<td>min</td>
				<td>取最小值</td>
				<td>任意数值...</td>
				<td>返回最小值，如果有不能被parseFloat的数据，返回NaN</td>
			</tr>
			<tr>
				<td>round</td>
				<td>四舍五入取整</td>
				<td>任意数值</td>
				<td>返回四舍五入后的整数</td>
			</tr>
			<tr>
				<td>random</td>
				<td>取随机数</td>
				<td>无</td>
				<td>0和1之前的随机数，包含0但不包含1</td>
			</tr>
			<tr>
				<td>pow</td>
				<td>求幂</td>
				<td>x底数 y幂数</td>
				<td>返回x的y次幂</td>
			</tr>
			<tr>
				<td>sqrt</td>
				<td>取平方根</td>
				<td>任意数值</td>
				<td>返回数值的平方根</td>
			</tr>
			<tr>
				<td>exp</td>
				<td>求以e为底数的指数, e^X=y</td>
				<td>真数x</td>
				<td>返回E的指数y</td>
			</tr>
			<tr>
				<td>log</td>
				<td>求以e为底该数的对数, e^y=X</td>
				<td>真数X</td>
				<td>返回x的自然对数y</td>
			</tr>
		</table>
		<li>javascript把通常的数学运算函数都集中在一个系统Math对象中，上面这些方法都是Math对象下的方法</li>
		<li>Math对象除了普通的数学运算，还提供了三角函数运算和exp、log两个对数运算</li>
	</div>
</ul>

<div class="dt">javascript数组函数</div>
<ul>
	<div class="ltable showimg">数组栈式操作</div>
	<div class="img">
		<table>
			<tr>
				<th>方法</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>push</td>
				<td>向数组的末尾添加一个或多个值（尾部入栈）</td>
				<td>任意数据...</td>
				<td>改变后的数组的长度</td>
			</tr>
			<tr>
				<td>unshift</td>
				<td>向数组的头部添加一个或多个元素（头部入栈）</td>
				<td>任意数据...</td>
				<td>改变后的数组的长度</td>
			</tr>
			<tr>
				<td>pop</td>
				<td>删除并返回数组的最后一个元素（尾部出栈）</td>
				<td>无</td>
				<td>被删除的元素</td>
			</tr>
			<tr>
				<td>shift</td>
				<td>删除并返回数组的第一个元素（头部出栈）</td>
				<td>无</td>
				<td>被删除的元素</td>
			</tr>
		</table>
		<li>javascript的栈式操作和php语言类似，也都能同时入栈多个元素</li>
	</div>

	<div class="ltable showimg">数组元素操作</div>
	<div class="img">
		<table>
			<tr>
				<th>方法</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>slice</td>
				<td>选择数组指定索引起始指定索引结束的元素组成新的数组（不包含结束位置）</td>
				<td>start索引  【end索引=max】</td>
				<td>返回选择元素组成的数组，原数组不会被改变</td>
			</tr>
			<tr>
				<td>splice</td>
				<td>取出数组指定索引起始指定长度的元素，并返回取出的元素</td>
				<td>start索引 【length长度=max】</td>
				<td>返回取出的元素组成的数组，未取出元素返回空数组</td>
			</tr>
			<tr>
				<td>concat</td>
				<td>数组合并，如果参数不是数组，则识别为单元素数组</td>
				<td>任意数据...</td>
				<td>返回合并后的数组</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">数组排序函数</div>
	<div class="img">
		<table>
			<tr>
				<th>方法</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>sort</td>
				<td>数组排序</td>
				<td>【func】</td>
				<td>返回排序后的数组</td>
			</tr>
			<tr>
				<td>reverse</td>
				<td>倒序排列数组中的元素</td>
				<td>无</td>
				<td>返回倒序排列后的数组</td>
			</tr>
		</table>
		<li>排序函数改变原数组，并返回改变后的数组</li>
		<li>sort函数默认按ASCII码从小到大排列，如果定制了回调函数，会逐一成对将2个值传入，且索引大的值传入第一个参数，如果返回负数，交换2个元素的位置</li>
	</div>

	<div class="ltable showimg">数组结构转化</div>
	<div class="img">
		<table>
			<tr>
				<th>方法</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>toString</td>
				<td>转化数组为字符串，效果和join(',')一致</td>
				<td>无</td>
				<td>数组</td>
			</tr>
			<tr>
				<td>toLocaleString</td>
				<td>以本地分隔符将数组分割为字符串</td>
				<td>无</td>
				<td>数组</td>
			</tr>
			<tr>
				<td>join</td>
				<td>以指定分割符分割数组为字符串</td>
				<td>str分隔符</td>
				<td>数组</td>
			</tr>
			<tr>
				<td>split</td>
				<td>以指定分割符分割字符串为数组</td>
				<td>str分隔符</td>
				<td>数组</td>
			</tr>
		</table>
		<li>javascript严格意义的数组只有默认索引数组，如果默认索引序列中大的索引位置有值而小的未被赋予值，那么它是undefinded</li>
		<li>也因为javascript只有默认索引数组，所以结构转化都是通过分隔符操作</li>
	</div>
</ul>

<div class="dt">javascript常用对象方法</div>
<ul>
	<div class="ltable showimg">Object原型</div>
	<div class="img">
		<table>
			<tr>
				<th>方法</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>keys</td>
				<td>获取对象中或数组所有的属性和key</td>
				<td>对象</td>
				<td>key组成的数组</td>
			</tr>
			<tr>
				<td>getOwnPropertyNames</td>
				<td>获取对象中所有的属性名</td>
				<td>对象</td>
				<td>属性名组成的数组</td>
			</tr>
			<tr>
				<td>getPrototypeOf</td>
				<td>获取对象的原型对象</td>
				<td>对象</td>
				<td>原型对象</td>
			</tr>
		</table>
		<li>getPrototypeOf返回的对象为描述符{constructor:f}的原型，其的constructor属性指向构造函数，其的原型就是构造函数的原型</li>
		<li>keys方法可以取出数组中的key和对象自有的属性名，getOwnPropertyNames用于数组，会多返回一个length键</li>
	</div>

	<div class="ltable showimg">原型链属性</div>
	<div class="img">
		<table>
			<tr>
				<th>属性</th><th>作用</th><th>返回值</th>
			</tr>
			<tr>
				<td>__proto__</td>
				<td>指向对象的原型对象</td>
				<td>描述符为{constructor:f}的原型对象</td>
			</tr>
			<tr>
				<td>constructor</td>
				<td>指向对象的构造函数</td>
				<td>构造函数</td>
			</tr>
			<tr>
				<td>prototype</td>
				<td>获取构造函数的原型对象</td>
				<td>描述符为{constructor:f}的原型对象</td>
			</tr>
			<tr>
				<td>hasOwnProperty</td>
				<td>检测对象或数组本身是否有某个属性或key，不会遍历原型链查找</td>
				<td>布尔值</td>
			</tr>
			<tr>
				<td>isPrototypeOf</td>
				<td>检测对象是否在参数对象的原型链中</td>
				<td>布尔值</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">原型链操作符</div>
	<div class="img">
		<table>
			<tr>
				<th>操作符</th><th>作用</th><th>示范</th>
			</tr>
			<tr>
				<td>in</td>
				<td>判断对象中是否有某个属性</td>
				<td>'name'  in   Person</td>
			</tr>
			<tr>
				<td>instanceof</td>
				<td>判断对象的原型链中是否有另一个对象，或构造函数的prototype对象</td>
				<td>hero  instanceof Person</td>
			</tr>
		</table>
		<li>for和in组合可以用来遍历对象或数组的key</li>
	</div>

</ul>

<div class="dt">javascript数据处理</div>
<ul>
	<div class="ltable showimg">通用格式数据处理</div>
	<div class="img">
		<table>
			<tr>
				<th>方法</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>JSON.parse</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">字符串</div>
	<div class="img">
		<table>
			<tr>
				<th>方法</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>concat</td>
				<td>拼接字符串</td>
				<td>任意值...</td>
				<td>字符串</td>
			</tr>
		</table>
		<li>concat为数组和字符串对象下都有的方法，返回的也是对象对应的数据类型数据</li>
	</div>

	<div class="ltable showimg">数组处理</div>
	<div class="img">
		<table>
			<tr>
				<th>方法</th><th>作用</th><th>参数</th><th>返回值</th>
			</tr>
			<tr>
				<td>concat</td>
				<td>数组合并(数组)、入栈(单一类型)</td>
				<td>任意值...</td>
				<td>数组</td>
			</tr>
			<tr>
				<td>slice</td>
				<td>取出数组中从指定索引开始指定索引结束的元素组成新的数组</td>
				<td>start索引 【end索引=-1】</td>
				<td>新的由取出元素组成的数组(未改变原数组)</td>
			</tr>
			<tr>
				<td>splice</td>
				<td>向数组中删除或者添加值，并返回被删除元素的集合</td>
				<td>int索引 length=max push增加的元素...</td>
				<td>新的由被删除元素组成的数组</td>
			</tr>
		</table>
		<li>concat为数组和字符串对象下都有的方法，返回的也是对象对应的数据类型数据，数组下的concat方法会以一维入栈的方式处理数组合并等操作，参数也是数组会遍历他的值逐一入栈</li>
	</div>
</ul>

<div class="dt">javascript其他函数方法</div>
<ul>
	<div class="ltable showimg">定时器</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>参数</th><th>说明</th><th>返回值</th>
			</tr>
			<tr>
				<td>setTimeout</td>
				<td>code代码/func函数  int微秒数</td>
				<td>在指定的微秒时间后执行指定代码</td>
				<td>int定时器id</td>
			</tr>
			<tr>
				<td>clearTimeout</td>
				<td>由setTimeout返回的定时器id</td>
				<td>关闭setTimeout定时器</td>
				<td>无返回值</td>
			</tr>
			<tr>
				<td>setInterval</td>
				<td>code代码/func函数  int微秒数</td>
				<td>每隔指定微秒时间执行指定代码</td>
				<td>int定时器id</td>
			</tr>
			<tr>
				<td>clearInterval</td>
				<td>code代码/func函数  int微秒数</td>
				<td>关闭setInterval定时器</td>
				<td>无返回值</td>
			</tr>
		</table>
		<li>setTimeout和setInterval虽然第一个参数可以直接是某些代码块，但这样设置的定时器不会正常工作。正常的用法应该是匿名函数声明或者函数名</li>
		<li>Javascript引擎本身没有发起计时任务的功能，所以计时任务是由宿主浏览器发起的，在发起后也并不一定在额定时间执行，
			执行机制是时间到了之后将该任务运行的代码提交到一个宏任务队列末尾，在事件循环机制到了此任务的时候去执行</li>
	</div>

	<div class="ltable showimg">js原生弹窗</div>
	<div class="img">
		<table>
			<tr>
				<th>函数</th><th>参数</th><th>说明</th><th>返回值</th>
			</tr>
			<tr>
				<td>alert</td>
				<td>任意数据</td>
				<td>弹窗，数字、布尔、字符串以字符串形式，其他则弹出其类型</td>
				<td>无返回值</td>
			</tr>
			<tr>
				<td>confirm</td>
				<td>任意数据</td>
				<td>弹窗，数字、布尔、字符串以字符串形式，其他则弹出其类型</td>
				<td>返回布尔值</td>
			</tr>
			<tr>
				<td>prompt</td>
				<td>str要确认的信息 str用户输入默认值</td>
				<td>交互弹窗，弹出一个可供输入的对话框</td>
				<td>返回用户填写的数据</td>
			</tr>
		</table>
		<li>js原生弹窗在javascript引擎中是特殊的语法对象，在执行时当前页面所有程序都会暂时终止</li>
	</div>
</ul>


</body>
</html>